1. Field of the Invention
The present invention relates generally to communications over packet networks. More particularly, the present invention relates to processing destructive breaks in modem communications over a packet network; such as the Internet, utilizing the Internet Protocol (“IP”).
2. Related Art
FIG. 1 illustrates a block diagram of a conventional communication model for Modem over Internet Protocol (“MoIP”}. As shown, communication model 100 includes first client communication device 110 in communication with first gateway communication device 120 over PSTN providing transmit and receive channels or lines 112 and 114. Communication model 100 further includes second client communication device 150 in communication with second gateway communication device 140 over PSTN providing transmit and receive channels or lines 144 and 142. Communication model 100 enables communications between first gateway communication device 120 and second gateway communication device 140 via a packet network 130 utilizing the Internet Protocol. The Internet Protocol implements the network layer (layer 3) of a network protocol, which contains a network address and is used to route a message to a different network or subnetwork. The Internet Protocol further accepts packets from the layer 4 transport protocol, such as Transmission Control Protocol (“TCP”) or User Data Protocol (“UDP”), and adds its own header and delivers the data to the layer 2 data link protocol. TCP provides transport functions, which ensures that the total amount of bytes sent is received correctly at the other end. UDP, which is part of the TCP/IP suite, is an alternate transport that does not guarantee delivery. It is widely used for real-time voice and video transmissions where erroneous packets are not retransmitted.
For purposes of MoIP, communication devices 110, 120, 140 and 150 are capable of performing modem functions. The term modem stands for modulator-demodulator (i.e. digital-to-analog/analog-to-digital converter). Modem is a device that is capable of adapting a terminal or computer to an analog telephone line by converting digital pulses to audio frequencies and vice versa. Modems may support a variety of data modulation standards, such as ITU (International Telecommunications Union) standards: V.22bis, V.34, V.90 or V.92, etc. Communication devices 110, 120, 140 and 150 may also be cable or DSL modems, which are all digital and technically not modems, but referred to as modems in the industry. Typically, modems have built-in error correction, such as MNP2-4 or LAPM (or V.42) and data compression, such as MNP5, V.42bis or V.44. Modems are also capable of supporting various voice and facsimile standards.
Conventionally, the communication process for MoIP begins when first client modem ((“M1”) or first client communication device 110) calls first gateway modem ((“G1”) or first gateway communication device 120). As a result, G1 calls second gateway modem ((“G2”) or second gateway communication device 140), and G2 in turn calls second client modem ((“M2”) or second client communication device 150). According to MoIP, modem connections are terminated locally such that M1 and G1 handshake and make a connection locally and, similarly, M2 and G2 handshake and make a connection locally.
After a physical connection is established locally between M1 and G1, M1 and G1 negotiate to select and establish an error correction protocol (or logical connection), based on protocols such as V.42 or MNP. M1 and G1 may also negotiate and establish a data compression protocol, such as MNP5, V.42bis or V.44. Similarly, M2 and G2 may negotiate and establish an error correction and a data compression protocol locally.
During modem communications, break signals may be transmitted from a data terminal equipment (DTE) (not shown) to M1. Such break signals may be interpreted by M1 to represent various commands based on M1's configuration. For example, a break signal may simply be interpreted by M1 as a request by the DTE for M1 to escape to command mode for accepting commands from the DTE. In another configuration, M1 may simply receive and transmit the break signal to G1 in sequence with data. Yet, in one setting, M1 may transmit the break signal to G1 immediately and ahead of all buffered data. In a particular setting, M1 may interpret the break signal as a command to flush or destroy all buffered data and further transmit the break signal to G1 immediately, which is generally referred to as a destructive break signal.
Proper handling of destructive break signals is extremely crucial during modem communications. For example, an incorrect destruction or transmission of a single byte of data can corrupt compression dictionaries, which would cause compressor and decompressor to become out of sync and therefore misinterpret the compression codes.
Processing of destructive break signals becomes even more important during MoIP operation as the gateway modems G1 and G2 are also affected and must process the destructive break signals. One proposal for processing the destructive break signals for MoIP suggests that an eight-bit break byte be continuously transmitted as part of the packets transmitted over the IP link between G1 and G2. The value of the break byte is then incremented when a destructive break is received by G1 from M1. Next, a break signal message is transmitted from G1 to G2 via an expedited channel, and the break byte is sent via the data channel. Upon receipt of the break signal message via the expedited channel, G2 flushes all buffered data and all incoming data until the break byte is received.
The above-described proposal, however, suffers from many problems. For example, such proposal requires that an additional break byte to be transmitted in the data channel continuously, even though no break signal has been received. Because break signals are rear occurrences during modem communications, such proposal sacrifices too much of the data bandwidth. Therefore, there is an intense need for other approaches that can provide efficient and easy-to-implement methods and systems for handling destructive breaks while preserving the data bandwidth.